perm filename E.ALS[UP,DOC]19 blob
sn#185722 filedate 1975-11-13 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00024 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00003 00002 NEWS about E (newest news first). (Index is on p. 3.)
C00017 00003 INDEX of commands.
C00019 00004 Abbreviations and explanation of E documentation. Credits.
C00024 00005 General remarks.
C00043 00006 PAGE CHANGING commands.
C00048 00007 WINDOW and POINTER (ARROW) moving commands.
C00053 00008 LINE MARKING commands.
C00056 00009 LINE-EDIT commands.
C00067 00010 Attach and Copy commands: A C
C00076 00011 LINE-INSERT mode.
C00080 00012 Pitfalls and Hazards.
C00085 00013 SEARCH commands: F XFIND *
C00098 00014 SUBSTITUTION commands: \
C00108 00015 FILE-SWITCHING and text transfering commands: ε λ H ∃ ?
C00118 00016 MARGIN CONTROL commands: XJUST XJFILL XCENTER XJOIN
C00129 00017 More MARGIN CONTROL commands: XALIGN XJLEFT XINDENT → ←
C00136 00018 Other EXTENDED commands: X<cmd>
C00145 00019 System commands to evoke E, SWITCHES for file switching.
C00151 00020 Using ETV from a TTY or IMLAC.
C00160 00021 PARENTHESIS finding/matching commands: ( ) ↔ XPAREN
C00176 00022 Automatic and manual BEEPING upon command completion: XBEEP
C00178 00023 Message handling partial-sign command: ∂<cmd> 0∂
C00187 00024 Defining and using MACROS: XDEFINE Y
C00199 ENDMK
C⊗;
NEWS about E (newest news first). (Index is on p. 3.)
∂11/13/75 -- XSPOOL and XXSPOOL commands, if given when something is
attached, now spool only the ATTACH buffer instead of the rest of the
page as formerly. If no attachment, entire page is spooled as usual.
∂11/11/75 -- Automatic directory updating for extended files.
If you edit with ETV a file that has been extended by some other
program, ETV will automatically update the directory. However, the
updated directory will not be written out until some other page of
the file has been changed and is being written on the disk. The
extended part of the file must be formatted correctly for ETV, which
simply means that any formfeeds found in that part of the file must
occur as the first character in a (200-word) record; otherwise, the
file must be reformatted and a new directory generated. When a file
has been extended properly, ETV will say how many pages have been
added to the file, or if none, how many records have been added to
the last page.
∂10/28/75 -- ETV now permits lines containing up to 133 characters to be
transfered to the line editor for editing (the previous limit was 120).
In this context, characters are counted in a special way with each TAB
being counted as the display space which it occupies plus 2.
The line editor itself will allow the line to be augmentd until the
character count has reached 140 when it will activate, but such lines
cannot be reentered.
Lines longer than these limits may be broken up by XJUST and XJFILL
commands. Their lengths may be ascertained by the XLINCNT command.
∂10/17/75 -- Un-copy-attach bug fixed.
An attempt to detach more lines than are in the ATTACH buffer no longer
causes trouble. The current line cursor may not be left where you expect
it to be but E does not blow up.
∂10/16/75 -- Bug fixed in macro calls.
∂10/15/75 -- Extra information on the trailer line.
The trailer line now shows, at the extreme right, the state of the
current page with regard to the space it occupies or will occupy when
stored on the disk. Under normal conditions the number of records is
shown with the letter R.
When the X letter now appears on the header line this X is repeated on
the trailer line preceded by a number reporting the number of extra
records (of 128 words each) that will be required.
If, on the other hand, the page now contains or will contain at least
one complete record of nulls, this fact is reported by the letter B (for
bloat) and the number of such records. The command XBURP permits one
to store the corrected page with these superfluous records deleted. As
always, these superfluous records are not deleted when the page is
stored by the . command, by changing pages, by file switching or by the
E command. See the second paragraph on p. 5.
∂10/9/75 -- Punctuation-at-end-of-line bug in XJUST command fixed.
Note that E assumes that a period at the end of a line is always
punctuation and that the user will want two spaces after it, when
it is moved to within a justified line. Periods within a line are
assumed to be punctuation marks if they already have two spaces after
them, and the two spaces are preserved. If only one space is used,
they are assumed to terminate an abbreviation and so only one space
will follow them in the justified text. Exclamation marks and
question marks are treated the same as periods.
∂10/7/75 -- Macro defining and calling commands: ⊗XDEFINE ⊗Y.
E now has a very simple yet useful macro facility which saves the
user from having to type the same sequence of commands several times.
See p. 24.
∂10/7/75 -- ⊗XBURP command causes RIPPLING to discard whole records
of nulls from the current page only. Later this command may discard
whole records of nulls from all pages in one RIPPLING.
∂10/7/75 -- ⊗V improved on Data Disc displays.
αV now merely redraws the screen's text without erasing the screen
first. αβV still erases the screen and then redraws the text. Thus
αV is somewhat faster and sufficient for most cases.
∂10/1/75 -- Partial-sign command ⊗∂<cmd> for handling message files.
To facilitate editing message files with E, there is now a
partial-sign search command which searches for lines beginning with
partial-signs. This command, like the ⊗F search command, must be
followed by a second command which determines the action taken. This
command is capable of attaching or deleting a whole page's text and
deleting the associated pagemark at the same time. Soon MAIL will
write message files in E format. See p. 23.
∂10/1/75 -- An annoying substitution bug causing ILL MEM REFs and
free storage errors has been fixed.
∂9/75 -- ⊗XLINCNT now reports the length of the current line and the
number of characters on the current page in addition to the number of
the current line and the number of lines on the page. The length of
the current line is in display columns, that is, tabs are counted as
the number of spaces they produce and the CRLF on the end of the line
is not counted.
∂9/75 -- Window positioning has been improved.
Most commands that cause the arrow to move off screen will now
position the new window such that the arrow is in the middle.
∂9/75 -- αβ<ff> now does ⊗-<ff>.
That is, ie, αβ<ff> moves back a window, even across page boundaries.
∂9/75 -- ⊗0⊗W and ⊗0⊗L now move half a window in the indicated direction.
∂9/75 -- Type ahead for line editor improved.
You can now type ahead all kinds of line editor commands and win
(including backspace and control digits). Also, <bs> as a command to
move up a line works completely now, including on blank lines, and
can be typed ahead. Of course, within the line editor, <bs> is still
a line editor command.
∂9/75 -- Page number specifying in ⊗H and ⊗? commands.
The ⊗H (Home) and ⊗? commands now will take arguments to over-ride
the default values for the page number either as specified or if a
sign is used for a relative shift of page number by the specified
amount. See p. 15.
∂8/75 -- Parenthesis finding/matching commands: ⊗( ⊗) ⊗↔ ⊗XPAREN.
See p. 21.
∂8/75 -- Automatic and manual beeping upon command completion: ⊗XBEEP.
See p. 22.
∂8/75 -- Editing a line with the line editor now does not set the
WRITE flag if the line was not changed. Thus the line editor can be
used to examine lines without necessarily turning on the W at the top
of the screen.
∂8/75 -- CONTINUEing after exit.
After exiting from E, the user can give the monitor command CONTINUE
to get back into E quickly at the same line and page from which the
command to exit was given.
∂7/75 -- The ⊗; and ⊗: commands move straight up and down inside line editor.
The commands ⊗; and ⊗: do the same thing as ⊗↑ and ⊗↓ respectively,
except that instead of positioning you at the end of the new line,
they position you at the display column where you were when you gave
the command. Thus these commands move you (inside the line editor)
straight up and down, except that if the display column is in the
middle of a tab on the new line, then you are positioned at the
beginning of that tab and if the display column is beyond the end of
the newly edited line, you are positioned at the end of that line.
∂7/75 -- The α* and αβ* commands repeat the last search command given.
See p. 13.
∂7/75 -- α<cr> restores previous line editor line when typing filename.
When you get the message "Try again" after specifying a file name
with some error, it is now possible to invoke the <control><cr> line
editor command to recall what you had typed so that you need not type
everything over again. Most of the time this does not work but it
does here.
∂7/75 -- Bug in formatting SOS files fixed.
A recent bug in formatting SOS files has been fixed. Users are still
advised to repage such files with the /F switch if this is a
reasonable thing to do.
∂6/75 -- /F and /F/R modes break long pages up by inserting FFs.
See p. 19.
∂6/75 -- Unexpected errors encountered by E are now automatically recorded.
An FBI program reports most of the mal-functionings to ALS when you
get into trouble and you may hear from him for more details if he
thinks that he can do something for you (or vice versa).
∂6/75 -- The main timing problem on entering the line editor is fixed.
Now you can type ahead characters meant for the line editor without
waiting for the line editor to be set up after you have given a
command to edit a particular line. The fix involved a system modification.
∂1975 -- Formerly fatal errors kludged around.
Some formerly fatal errors no longer cause E to HALT, although the
fix may not always work and E may crash later after all.
∂1975 -- UDP files are remembered on file switching (maybe almost right).
INDEX of commands.
Read α as CONTROL, β as META, ⊗ as EITHER CONTROL OR BOTH CONTROL AND META
N=Normal, L=Line-insert, E=line-Edit, A=Attach, X=eXtend.
# stands for any decimal number
Command Meaning in Mode Page
⊗A Attach 1 line N
⊗+⊗A Add to A A
⊗#⊗A Attach # lines A
⊗B → to Bottom N,A
⊗C copy N
αD Delete char E
αβD Delete line N
⊗E Exit N,A
αF Find string N
αβF Find word N
⊗G unused
⊗H file Home N
⊗I enter Insert E
⊗J Jump window N
αβK Kill attach A
⊗L Last window N
αM to next Mark N
αβM Make Mark N
⊗N unused
⊗O unused
⊗P Page N
⊗-⊗P -Page N
⊗Q copy line N
⊗R Replace (att) A
αS Seek E
⊗T → to Top N
⊗U Up window N
⊗V View N
⊗W Window down N
⊗X enter eXtend N
⊗Y unused
⊗Z unused
⊗ε file Enter N
⊗λ file Look N
⊗∃ files exist N
⊗0⊗∃ zero file list N
⊗* find repeat N
⊗\ substitution
repeat N
⊗? Query E.ALS N
α↑ _ up 1 to end E,N
α↓ _ down to end E,N
α; _ up, same pos. E,N
α: _ down, same p. E,N
⊗( find ( E,N
⊗) fnd matching ) E,N
Abbreviations and explanation of E documentation. Credits.
This version of the E manual is intended for on-line use by the normal
user. It may be referenced at any time while editing another file simply
by typing a <CONTROL>? command. One may always return to one's original
file by typing the <CONTROL>H command.
A simplified form of this manual for the beginner is available by
typing HELP ETEACH with a carriage return to the system. This copies a
file named TEACH into one's file area and allows one to read it and
modify it for practice.
This is p. 4 of E.ALS[UP,DOC] (see the top line with asterisks).
Page 1, the "directory" page, is automatically prepared by E, and in
this case has been planned to be of maximum help to the user. There is
also an Index of Commands on p. 3.
ABBREVIATIONS used in this manual and in TEACH to characterize commands.
α means hold the "CONTROL" key down while typing a character.
β means hold the "META" key down while typing a character.
αβ means hold both "CONTROL" and "META" keys down while typing.
⊗ means hold either the "CONTROL" key alone or both "CONTROL"
and "META" keys down while typing.
Most commands are single characters with one or both of the two keys.
Additional abbreviations
<cr> carriage RETURN key. <lf> LINE feed key.
<tab> TAB key. <alt> ALT-mode key.
<bs> Back-Space key. <form> FORM-feed key.
<vt> the VT key. <clear> the CLEAR key.
CURRENT means the current line (normally with an → or ↔ on the left).
Credits.
Dan Swinehart wrote TV, the original version of the display editor,
and created the original version of TEACH. Fred Wright wrote the FAIL
version of TV (called E). Brian Harvey modified TEACH to reflect
differences between E AND TV. Arthur Samuel and Brian Harvey are
responsible for this version. Address all comments and questions to
Samuel, who is currently trying to fix a few of the many remaining bugs
in E.
Disclaimer.
An attempt has been made to present a coordinated view of E. To this
end some simplications have been made. The experienced user may develop
techniques that are not described in this manual. Any outright errors
should, however, be called to our attention.
An earlier and more complete (but perhaps less accurate) description
of E features is available in the TV manual, TVED.DCS[S,DOC], and the
file TV2E.FW[UP,DOC] which describes how E differs from TV.
General remarks.
E is a page oriented editor designed for use with a display
terminal. It brings one page of the text into core, as requested, and it
displays a portion of this page as if through a window. A line pointer
and an underscoring cursor mark the position in the text where editing
is to occur. Special commands allow you to go from page to page, to
move the window up or down on the page and to move the line pointer and
cursor as desired
A window of text on the screen is preceded by a header line which
contains a row of asterisks, (if the window starts at the head of the
page) and information as to the Page being viewed, the name of the file,
the state of the file (whether opened in read only mode or not), and
certain letters that indicate the state of the editing. If the window
starts at other than the first line on the page, then the asterisks are
replaced with dots and the beginning line number is also displayed. The
window is followed by a trailer line which reports the line number of
the last line shown in the window, the total number of lines on the page
(if there are some still not shown), the page number (repeated for
convenience), the total number of pages in the file, then the line
number at which an arrow appears (its use will be explained later), and
finally information as to the state of the page with respect to the
number of records that it currently will occupy. If more space is
allotted to the page than it actually needs, the letter "B" (for
bloated) will appear preceded by the number of extra records (of nulls)
allotted. If more space than allotted is needed, the letter "X" (for
extend) will be seen preceded by the number of extra records needed. If
the page is not bloated and does not need to be extended, then the
letter "R" will appear preceded by the number of records used to store
the current page. The letter "X", if required, also appears on the
header line to indicate that if the page is written out, extra records
will be added automatically (by rippling, unless the page is the last in
the file). Extra records indicated by a "B" on the trailer line will
never be removed automatically, although they can be removed by the
XBURP command. The trailer line contains asterisks if the last line of
the page appears on the page and dots if it does not.
E does not make a separate disk copy of the file being edited
unless requested to do so by the use of a special command (described
later), so take care or you may damage a file that belongs to someone
else.
E achieves its speed (1) by using the system line editor and by only
changing the core copy of the text on the completion of a line edit, and
(2) by updating the disk copy of the page only on the completion of a
page edit (automatically effected by moving to another page). You can
undo an entire page of incorrectly made modifications by cancelling an
update, but unfortunately, you can also lose an entire page of desired
modifications or additions if the system should go down unexpectedly.
Always remember that the text shown on the display may not, and usually
does not, mirror the true state of the actual text on the disk.
E is best understood by recognizing that it operates in a variety of
different modes and that many commands are appropiate only to certain
modes. In fact some commands have quite different effects depending upon
the mode that E is in at the time that the command is given. The
dominant mode is the NORMAL mode. This allows for page, window and line
marker movement commands and commands which enter the other modes.
PAGE CHANGING commands.
PAGE-CHANGING commands are single characters typed with the CONTROL key
held down or with both the CONTROL and the META keys held down. They may
take modifiers as shown below.
⊗P Go to the next PAGE.
⊗-⊗P Back up to the previous page.
⊗+⊗7⊗P Go foreward 7 pages if possible, otherwise to the last page.
⊗-⊗3⊗P Go backward 3 pages if possible otherwise to the first page.
⊗7⊗P Go to page 7 if possible otherwise to the last page.
It is good practice to limit the page size to less than 150 lines.
This eases the load on the editor and makes the directory of more use,
if you adopt the practice of starting each page with a suitable comment.
E keeps certain vital statistics packed into 9-bit bytes and it gets
into trouble if there are more than 511 lines on any one page.
You are now looking at a longer page than before. Note two things:
1 The top line contains asterisks, the page number and the file name.
2 A bottom line contains dots, where formerly there were asterisks.
The asterisks mean that you are seeing the page through a window
starting at the top of the page, while the dots mean that there is yet
more on the page than that shown. On moving the window down, dots will
replace the top asterisks. If you can then see to the end of the page
asterisks will appear at the bottom. Note also that there are some
lines at the very bottom that echo your command or acknowledge its
execution. Watch these lines to detect errors.
Several commands allow you to move the window up and down on the page
and to move the CURRENT line marker (the arrow on the left) around.
Note that the window moved down on the page only far enough to get to
the end of the page. Had the page been longer, an entirely new window-
ful might have appeared (except for the former last line which now would
become the first line).
The → which had previously been attached to the first line of text,
moved to the last line and stayed with it as the window moved. This
arrow points to a line called CURRENT. This line would be affected if
you were to do some line editing. More on this later.
WINDOW and POINTER (ARROW) moving commands.
These are Normal-mode commands.
⊗W Advance the WINDOW, that is, move the last line to the top. If
there is less than a windowful left, move the window only enough
enough to see to the end.
⊗0⊗W Advance the window half way.
⊗L Move the window up so that the first line becomes the LAST. This
is the reverse of ⊗W.
⊗0⊗L Do a half ⊗L.
<form> Do a ⊗W if there is more material on this page, otherwise a ⊗P.
Note that no control keys are used.
Caution: be sure E is in the NORMAL mode before using.
⊗-<form> Do a ⊗L if not at the top of the page otherwise go to the last
full window on the next earlier page.
αβ<form> The same as ⊗-<form>.
<cr> Move the "Current line" pointer down a line.
Note, no control keys used.
⊗> Move the pointer down 4 lines. This takes the <top> key.
⊗≥ Move the pointer down 1/2 screen. This also takes the <top> key.
<vt> Move the "Current line"pointer up a line.
⊗< Move the pointer up 4 lines. (Be sure to depress the <top> key).
⊗≤ move the pointer up 1/2 screen.
⊗T Move the pointer up to the TOP line, adjusting the window to
show a few lines above this if possible.
⊗B Move the pointer to the BOTTOM line, adjusting the window to
show a few more lines if possible.
⊗J Move (JUMP) the window so that the CURRENT line is at the top.
⊗0⊗J Move (JUMP) the window so that the CURRENT line is at the middle.
⊗-⊗J Move (JUMP) the window so that the CURRENT line is at the bottom.
⊗3⊗J Move (JUMP) the window so that the CURRENT line is 3 lines higher
in the window (with the top as the limit).
⊗-⊗7⊗J Move (JUMP) the window so that the CURRENT line is 7 lines lower
in the window (with the bottom as the limit).
Note that the default argument for the J commands is, in
effect, infinity, with the argument 0 having a special meaning
rather than being a NO-OP.
αβD DELETE the entire CURRENT line.
This takes both α and β since αD has a different meaning.
Use with caution, the only way to undo a line deletion is
to cancel all corrections to the current page that have
been made since the last disk update.
⊗4αβD Delete 4 lines starting with CURRENT.
Two NORMAL-MODE commands that may be used to save an edited page are:
⊗. Write the current page (as corrected) into the disk file.
Note, this is done automatically with a change page command.
⊗E Do a ⊗. and then EXIT to the system monitor.
Most of the NORMAL-MODE commands require the use of the CONTROL key
and perhaps the META key. <cr>, <vt> and <form> are exceptions.
LINE MARKING commands.
E also provides the facility of marking up to 16 line locations with a
rapid way to return to these locations by using the following commands.
Marks are relative with respect to the line locations on the page but the
stored values are corrected for line insertions and deletions and for page
mark insertions and deletions so that the marks appear to be sticky. Marks
on lines that are attached or deleted are obliterated.
At the present time, no attempt has been made to restore marks to their
proper position after a ⊗XCANCEL command as this would involve some extra
computations at the time of each page change which seems to be excessive.
Marks are saved during ⊗ε, ⊗λ, ⊗? and ⊗H file-switching operations and
are restored on returning (by ⊗H or number) to a previously marked file.
αβM Mark the CURRENT location, recording page number
and line number.
αβ-αβM Erase the MARK at CURRENT.
αβ0αβM Erase all MARKS.
αM Go to the next MARK (cyclicly).
α-αM Go to the previous MARK (cyclicly).
α2αM Go the the second Mark forward from here (cyclically).
α-α3αM Go the the third Mark before the current location (cyclically).
LINE-EDIT commands.
E uses the line-editing commands that are a part of the operating
system.
Typing a character without a CONTROL or META key will normally invoke
the line editor and the character is typed into the CURRENT line. A
cursor will appear under the first character in the line and in that
position where the next typed character will go. A character so typed
overwrites the character that was at the cursor's position. E will be
in the LINE-EDIT mode.
A word of caution- it is usually safe to continue typing on entering
the LINE-EDIT mode without waiting for the system to catch up. This can
fail, so look before giving a carriage return and if anything is amiss
type <alt> and start over again. Strange things can happen. Do not try
to save a partially correct line for later re-editing. You may have to
type <alt> more than once.
When the arrow appears to point at the bottom row of asterisks
(which, of course, is not in the text) E will accept anything that is
typed as an added line of text. The asterisks temporarily dissappear
only to reappear below the new line on the completion of the addition,
and E reverts to the NORMAL mode.
When in the LINE-EDIT mode a <cr> will terminate the mode and move
CURRENT to the next line. A α<cr> will terminate the LINE-EDIT mode
without moving CURRENT. Remember that the line corrections do not appear
in the core image until you issue one of these commands and that the
version on the disk still does not show your corrections until a disk
update has been initiated. When in this intermediate state the letter W
will appear at the end of the title line (with asterisks or dots at
the top of the window, meaning that something is yet to be written.
If your change will require the directory to be changed, this will
be shown by the letter D in this top line. The letter X can also appear
if the change requires a in extension in the space on the disk assigned
to the current page. The letter X also appears on the trailer line with
a number specifying the number of extra records (of 128 words) that will
be required. If no extra records are required this X is replaced by the
letter R following a number specifying the number of records that the page
occupies or will occupy on the disk. After a deletion the letter B may
appear in place of this R or X, again preceded by a number that specifies
the number of all-null records that the page will contain.
By the way, window moving commands do not automatically update the
disk, whereas page changing commands always do an update.
Most of the line editing commands listed below will also enter the
LINE-EDIT mode from the NORMAL mode.
If you make a mistake and perhaps lose some valuable information hit
<alt> rather than <cr> and your data will reappear as if by magic.
Some useful line editing commands are:
α<space> Move the cursor to the right 1 space.
α4α<space> Move the cursor 4 spaces to the right.
α<bs> Move the cursor to the left 1 space.
. α5α<bs> Move the cursor 5 spaces to the left.
α<tab> Move the cursor to the end of the line.
α<form> Move the cursor to the start of the line.
αS then <char> Move the cursor to the next occurance of <char>.
α3αS then <char> Move the cursor to the 3rd next occurance of <char>.
αD DELETE a character and move the rest of the line to the
left. If at the end of the line, this will append the
next line to the current. ETV will prevent this from
being done if the resulting line would be too long for
the line editor.
β<bs> Delete the character to the left of the cursor position.
<bs> BACK SPACE, deletes like β<bs> if at the end of the line,
otherwise just moves the cursor to the left like α<bs>.
αK<char> KILL the line starting with the cursor position up to but
not including the character typed. Do nothing if the no
such character is found.
α4αK<char> KILL the line up to the 4th occurrance of the character.
β<char> Make room and insert <char> ahead of the cursor
position.
β<cr> Insert a carriage return and stay in LINE-EDIT mode.
β<vt> DON'T, at least not until you know better, or until a bug
in E gets fixed.
αI Enter INSERT mode (like holding META down continuously).
Everything that you type (including carriage returns)
will be inserted until you type another line command.
Any LINE-EDIT command will cause one to leave the INSERT
mode, for example, the α<space> command.
<cr> Leave LINE-EDIT mode, accept the line and move CURRENT down.
α<cr> Leave LINE-EDIT mode, accept the line, do not advance CURRENT.
α<vt> Leave LINE-EDIT mode, accept the line and move CURRENT up.
<alt> Restore the line to it original condition and leave the
LINE-EDIT mode.
⊗↑ Accept the line, then move to the end of the previous line.
⊗3⊗↑ Accept the line, then move to the end of the third previous
line.
⊗↓ Accept the line, then move to the end of the next line.
⊗6⊗↓ Accept the line, then move to the end of the sixth line
forward.
⊗; Accept the line, then edit the previous line from the same
display position as that from which this command was given.
⊗3⊗; Accept the line, then edit the third previous line from the same
display position as that from which this command was given.
⊗: Accept the line, then edit the next line from the same
display position as that from which this command was given.
⊗6⊗: Accept the line, then edit the sixth line forward from the same
display position as that from which this command was given.
The above commands work in both NORMAL and LINE-EDIT modes.
The following command works only in the NORMAL mode but since it
enters the LINE-EDIT mode it is best explained here.
⊗Q Insert a copy of the line just above CURRENT and open it
for editing (i.e. enter LINE-EDIT mode).
If you are editing a line and type something that the line editor
does not understand it will usually ignore the error (after thinking
about it for a moment) but don't bank on this too heavily because it can
fail.
If you type a legal ⊗ command (some are forbidden) when in LINE-EDIT
mode the line will be accepted as edited and the command will be carried
out.
(Typing ⊗. in LINE-EDIT mode returns to LINE-EDIT mode automatically
without writing the page.)
The α<cr> command, that works to recall a line from the system buffer
in the system's monitor mode, is replaced by the αQ command as described
above.
Attach and Copy commands: ⊗A ⊗C
The ATTACH and COPY commands permit blocks of lines or copies of them
to be moved up and down on the page or from page to page, as desired.
The ATTACH command removes one or more contiguous lines of text from
the core image of the page and places them in a special attach buffer.
The lines are still displayed on the screen in their original position.
Note that if more than 8 lines are attached, then only the first 4
lines and the last 3 lines are shown so that one can see a few lines
both before and following the attached lines to be certain as to their
relationship to the rest of the page. The attached lines are marked by
vertical bars (thus |) at the left.
The apparent position of the attached lines can be made to move up
or down on the page or from page to page with the usual CURRENT-moving
commands to prepare for a final command which will deposit the attached
lined back into the core image of the text at the indicated position.
Perhaps this can be made clearer by remarking that the CURRENT line
designation is actually attached to the line following the section of
text that has been removed (although the → does not appear). What one is
actually doing when one appears to be moving the attached lines is to
move CURRENT around and E cleverly always displays the attach buffer on
the screen just above CURRENT, where it will in fact be put if one gives
the deposit-line command.
Basic commands.
⊗A ATTACH the CURRENT line and mark it with a "|".
⊗3⊗A ATTACH 3 lines starting with CURRENT and mark these with "|'s".
If a number greater than 8 is used, (for the 3 in the example),
only the first 4 and the last 3 lines are shown. A row of dots
is used to indicate that some attached lines are not shown.
⊗E Deposit the attached lines where displayed and Exit ATTACH mode.
Note: this command has a different meaning when one is NOT in
the ATTACH mode (it then means EXIT from E). Don't stutter when
typing it. Give the system time to react.
αβR REPLACE the attached lines in their original location and leave
the ATTACH mode. CAUTION, this does not work correctly if you have
switched files, so be careful.
αβK KILL the attached lines (they go away beyond recall) and exit
from the ATTACH mode. Note that αK does not work (for safety).
If you make a practice of using the CONTROL key only, when in
the ATTACH mode, (when it works) you will avoid the danger of
accidentally killing an attachment, if you mean to hit a J or
an L and hit a K instead.
⊗C Make a COPY of the CURRENT line and ATTACH this copy.
⊗5⊗C Make a COPY of 5 lines starting with CURRENT and ATTACH these.
Relative arguments.
Relative-argument commands add or remove lines from the end of the
attach buffer thus:
⊗+⊗A Attach 1 more line beyond those already attached.
⊗+⊗3⊗A Attach 3 more lines beyond those already attached.
⊗-⊗A Detach 1 line from the end of those already attached.
⊗-⊗2⊗A Detach 2 lines from the end of those already attached.
⊗+⊗C Copy 1 more line beyond those already attached.
⊗+⊗4⊗C Copy 4 more lines beyond those already attached.
⊗-⊗C Delete (kill) 1 line from the end of the attached set.
⊗-⊗2⊗C Delete (kill) 2 lines from the end of the attached set.
If the apparent position of the attached lines have been moved before
these relative-argument commands are given then additions and deletions
are made in terms of the apparent new location. This gets a bit hairy in
the case of deletions but it is a very useful device for assembling a
set of copied lines from several different places.
Note that a single attach command is only effective to the end of the
current page, and an attachment is deposited all on the same page.
A word of warning, a hazard is involved in using ⊗A to move lines
from page to page. The attached lines can be lost if the system should
crash during the interval between the removal of the attached lines from
one page and the final updating of the page to which they are moved.
This hazard can be avoided by copying the lines rather than attaching
them and then going back and deleting the original copy. This
precaution is hardly necessary for a line or two but it is a wise one
when you are moving large blocks of text.
Moving lines from page to page takes time, so don't get impatient.
This is a good place to comment on the RIPPLING report, that you may
have noticed in the scratch-pad lines at the bottom of the screen. This
notice appears when a major rearrangement of the text between records
becomes necessary. This also takes time.
LINE-INSERT mode.
While one can add text at the bottom of a page by simply moving the
CURRENT marker so that it appears to point at the bottom row of
asterisks (not to dots), a special mode is used to insert lines of
text at other points. As a matter of fact it is usually better to enter
this special LINE-INSERT mode if one is to type several lines even when
at the end of a page.
When in the LINE-INSERT mode, typing a carriage return, inserts the
carriage return into the text, writes the line into the core image and
enters the LINE-EDIT mode for the next line to be typed. Care must be
taken to leave the LINE-INSERT mode properly or else undesirable letters
may appear in your text.
The fact that the editor is in the LINE-INSERT mode is signalled by a
double arrow CURRENT line marker ↔ in place of the right arrow →.
To enter the LINE-INSERT mode:
αβ<cr> Enter LINE-INSERT mode, insert a blank line ahead of the text
at CURRENT and mark the new line with the double arrow ↔. If
you are in the middle of a line, this will break the line into
two separate lines, with the ↔ at the start of a blank line
between the two portions.
This does something else, if you are already in LINE-INSERT
mode (see below).
While in LINE-INSERT mode:
<cr> Accept the line and move the ↔ to a newly inserted blank line.
α<cr> Leave the LINE-INSERT mode and accept the line in question.
αβ<cr> Insert a blank line (if not in the middle of a line). If you
are in the middle of a line, this will break the line into two
separate lines, and position the cursor to be ready to accept
text at the end of the second portion. At the present time a
a bug in E prevents the second portion from showing until the
next <cr> has been typed, but it's there.
α<vt> Leave the LINE-INSERT mode but move the → back to the line a-
head of the accepted line.
<alt> Accept the line up to the cursor but delete the rest and leave
the LINE-INSERT mode with the arrow pointing to the remaining
text or to the next line.
Pitfalls and Hazards.
The great power of E lies in its many modes. At the same time, E
can also be moody if one tries to give it certain commands when it is
not in the appropiate mode. It can even get into a state where it will
not listen to reason. In fact, you may easily lose much of your recent
editing. So it may be well to review some of the pitfalls and hazzards
associated with its use. These are of two types.
Errors of understanding.
<cr> and <vt> are not inverse operations.
Since <cr> and <vt> move CURRENT in the opposite direction when in
NORMAL mode one is tempted to thing of them as being, in some sense,
inverse. They are not, for a number of reasons, some having to do with
system editor design. Since the BACK-SPACE key now does everything that
the <vt> key does (this is a fairly recent change) it is wise to never
use the <vt> key at all.
Certain commands are not acceptable when in the LINE-INSERT mode.
When in the Line-Insert mode, you are talking directly to the Line-
Editor and many commands, particularly those with only the <CONTROL> and
not the <META> key used, may not leave the Line Editor properly with the
result that funny things can happen. When in this mode, use only regular
line-editing commands and always exit with a command using both control
keys or with the <CONTROL><CR> command. Do not try to use <CONTROL>
<VT>.
Always use both META and CONTROL keys with any argument meant for use
with a command that requires leaving the line editor even with those
non-line-editor commands which, themselves, do not use both keys.
Errors of execution.
The J,K and L keys can be mis-struck.
Since the kill command is potentially dangerous, particularly the αβK
command, one should take especial care in developing sane habits. One
precaution is to adopt the practice of never using both CONTROL and META
keys for the J and L commands which work the same whether or not the
META key is used.
There is, however, a rather good reason for not adopting this
practice generally particularly when in the LINE-EDIT mode since
commands with the CONTROL key only do not always activate immediately
and there is therefore a distinct possibility that initial part of the
command will be gobbled by the line editor if it arrives when the
program is swapped out. This never seems to happen with commands using
both the CONTROL and the META key.
D and < are on the same key.
The delete command is also potentially dangerous,particularly in the
αβD form and even more so when an argument is used. If one types αβ7αβD
when one means α7α< the results can be very unpleasent, to say the
least. Here again if one never forms the habit of using αβ< but always
uses α< then a mistake in not using the <top> key will not be nearly so
painful.
SEARCH commands: ⊗F ⊗XFIND ⊗*
The search can be specified in several different ways:
1) The search can be for an alphameric string that is separated from
the rest of the text by non-alphameric characters or it may be for any
string regardless of its surroundings. Note that no distinction is made
between upper and lower case. The FIND command does not find the very
first string on the line to which the cursor is pointing.
For single-page searches the commands are:
αβFSmith<cr> Find just plain Smith or smith but not this string in
in $smith, in blacksmith or in Smithsonian. Note that
% and _ are accepted as alphamerics.
αFSmith<cr> Find smith as an isolated word or as a part of a long-
er string (in blacksmith for example). The string is
no longer limited to alphamerics but use care because
there are still some bugs in E.
Note that no space is used between the F and the start of the string.
For multi-page search commands are:
αβXF Smith<cr> Find a delimited string.
αXF Smith<cr> Find the string regardless of surroundings.
Note that CONTROL and META keys are not used with the F and that a
space is required between the F and the string. Commands starting with
the letter X are EXTEND commands which permit more than a single
character to be used for the command name, hence the need for the space
to mark its end. In this case the complete command name is FIND, but,
since there are, at present, no other commands beginning with F, only
the F needs to be typed.
A string, once specified, is sticky, that is one need not retype the
string for a repeat of the command. The search string for a within-a-page
search is remembered independently from that for an EXTEND search. For a
repeat one repeats the command up to the string itself and then types the
desired termination (a <CR> as shown above, or any termination listed be-
low).
Special repeat commands exist which simplify the repeated search.
These are easier to use than the regular repeat command, described
above, but only the last exicuted type of FIND can be repeated. Two of
the more commonly used terminations are simulated by using different
control keys with the * command symbol.
αβ* Find the next occurence of the string specified by the
last FIND command (whether a single page FIND or a multipage
XFIND). Move the line cursor to the found line but do not enter
the LINE EDITOR, that is, duplicate a normal FIND command that is
terminated by a <CR> only. An argument may be used (such as
αβ1αβ3αβ*) to find the Nth occurence (the symbol ∞ counts as 510).
α* Find the next occurence of the string specified by the
last FIND command (whether a single page FIND or a multipage
XFIND). Leave the line in the LINE EDITOR as it would be for a
normal FIND command terminated by a <CONTROL><CR>. If there is
something in the ATTACH buffer, this is interpreted as an αβ*
command. See below for method of using an argument.
αβ4α* Find the fourth occurence of the string specified by
the last executed FIND command (whether a single page or a
multipage XFIND) and position the cursor under the first character
of the found string (as it would be for a normal FIND command that
is terminated by a <CONTROL><CR>). Note that both control keys
should be used with the argument to prevent interference troubles
with the LINE EDITOR. This precaution is particularly important if
the argument is typed while the last found line is in the LINE
EDITOR.
2) The following special symbols may be used in the search string
with the meanings noted. If these characters are desired as ordinary
characters in the searched-for string they must be preceeded by the
identity symbol ≡.
Symbol Meaning
¬ The character that follows must not be in the string at
this point but any other character will be accepted.
| Any deliminitor.
∀ Any character.
≡ The character that follows immediately after this symbol
is not to be treated as a special symbol but it is to be
included as a character in the searched-for string.
∞ Not at present implemented.
⊂ Not at present implemented.
3) The action that is to be taken on the successful termination of
the search is specified by the delimiter used to terminate the string.
The <cr>, used above, moves the → to the found line. A repeat of the
Find command, if given, will start with this same line, but after the
found string,, so that multiple occurances of a string within a line can
be found.
Accepted action-defining delimiters are:
<cr> Move CURRENT to the found line or report failure.
α<cr> Terminate, as with <cr>, but move the cursor until it is
under the first character of the string. Note that this
leaves E in the LINE-EDIT mode. A second FIND command can
however be given and the next occurance will be found. If
a FIND command is terminated with <cr>, a α<cr> will still
move the cursor to the string.
⊗J JUMP the line with the found string to the top of the
window.
αβ<cr> Enter the LINE-INSERT mode with the ↔ at a newly inserted
blank line ahead of the found line.
αP Make the search over the directory page and then display
the referenced page with the line pointer at the top line.
Note that one can give this command without having to
give an explicit command to go to the directory page.
If the search fails the current location is unchanged.
αβP Make the search over the directory page and then display
the referenced page with the line pointer at the second
occurance of the referenced string (the first will be in
the first line of the page).
⊗A ATTACH all lines starting with CURRENT up to and including
the line with the specified string.
If used with an EXTEND command and if the string is not on
the windowed page, the attachment will begin at the top of
the page on which the string is found.
Attachments do not cross page boundries.
⊗C COPY all lines starting with CURRENT up to and including
the line with the specified string.
See ⊗A above for restriction with an EXTEND command.
αβD DELETE all lines beginning with CURRENT up to but not
including the line with the specified string.
See ⊗A above for EXTEND command restriction.
This is a very dangerous command so use it with caution.
⊗\ Terminate the searched-for string and prepare to accept a
substitution string. The substitution string is then typed
in and may be terminated in any one of several ways. For
details see String Substitution Commands on the next page.
Note that there is a special repeat command for this case so
do not try to use the repeat conventions that are used for
simple searches.
<alt> Abort the present command and cancel the string specification.
4) The search can be for the first occurance of the specified string
or for the n'th occurance.
⊗3⊗Fsmith<cr> FIND the 3rd occurance of SMITH.
5) The <ESC>I command will terminate any FIND in progress at the end of
the page on which it happens to be searching, and it will report this page
number. This command is not intended for use with a single page F command
and it may give an incorrect message in this case on the termination of a
normal search.
SUBSTITUTION commands: ⊗\
String substitution commands are initiated by first giving a normal FIND
command but using the special string terminating character \
(back-slash), typed with both the <META> and the <CONTROL> keys
depressed. This is then followed by the substitution string which, in
turn, is terminated by either a simple carriage return (which may be
preceeded by an argument, typed with control keys) or by <CONTROL><CR>.
Note, many of the otherwise acceptable Find command terminations are not
meaningful with the substitution commands and are not allowed.
Characters in the searched-for string that are preceeded by the special
control symbols ¬ and ≡ and all characters that are represented by the
special symbol ∀ or by the symbol | (see p. 13 for the explanation of
these symbols) are treated as any other character and are deleted and
replaced by the substitution string. The "partial definition feature"
as implemented in SOS is not, at present available.
Note. The FIND command does not find the very first symbol on the line
to which the cursor is pointing.
This limitation is of little consequence for the simple FIND but it
is an annoyance if one wants to replace all occurances of a symbol
(or string) which happens to be the very first symbol (or string) on
a page. One can introduce an initial space into the first line or
one can introduce an initial blank line temporarily and have the
cursor at this line. The space or line can then be removed after the
substitution.
In the rest of this write-up "all occurances" means "all except the very
first character or string on the line to which the cursor is pointing at
the time that the command is given".
Sample commands.
αβFSTRINGαβ\"String"αβ∞<CR> Find all occurances of the string
STRING, whether typed in lower or upper case
letters and replace them by the substitution
string as typed, that is, enclosed in quotes and
with the initial letter only in CAPS. Limit the
search to the current page starting at th cursor
location.
αXFIND ←αβ\ <BACK ARROW> α<CR> Find the first occurance
of the character ← whether on the current page
or a subsquent one and replace it by the string
<BACK ARROW> (including the < and >) and with
spaces introduced before and after these
characters. Leave the resulting line in the
Line-Editor.
The <CR> termination is the faster mode of operation in that it makes a
minimum use of the line editor and it is recommended. This mode does
have one defect in that the substitution is completed and is not subject
to the simple <ALT> method of aborting a single line correction. When
the <CONTROL><CR> termination is used the substitution is made via the
Line-Editor and the results are left in the Line-Editor's buffer so that
the substitution may still be aborted by the usual <ALT> command. This
takes time and certain timing difficulties sometimes cause trouble.
The usual rules apply to the specification of the searched-for string.
The substitution string may, however, contain certain delimiters (spaces
in particular) whether or not the search is for a delimited string and a
distinction is made between upper and lower case letters. Only the
searched-for letters without delimiters are replaced. To be specific, if
one were to replace a delimited string by a null substitution string,
the two delimiters would remain in the corrected text.
The substitution string is sticky, so that a substitution command, when
successfully executed for a single occurance, may be repeated for the
next occurence by typing αβ\ only. The typing of a new string for the
searched-for string destroys the record of the previously saved
substitution string and the entire request must be retyped before this
command will be honored.
A null substitution string may be used but only after confirmation has
been requested and received. The substitution will also be restricted to
a single occurance. It may then be repeated as many times as desired by
the usual repeat command with the desired argument. These precautions
can be removed if users find them bothersome, but it was thought wise to
put them in at first.
Multi-page substitutions are useful but potentially dangerous as the
substitutions made on any one page are, of course, written out onto the
disk file when ever a new page is entered.
As noted earlier, typing αβ\ after a successful single substitution will
repeat the substitution. This command may be preceeded by an argument
(with control bits) and the substitution will be repeated the specified
number of times. Should substitutions occur on more than one page, all
substitutions on pages earlier than the last page will have been written
out.
The use of the command α\ rather than αβ\ is also allowed but is not
recommended. This leaves the altered line in the line buffer with the
possibility of an <ALT> abort.
Sample repeat commands.
αβ\ Repeat the previously made substitution at the next
occurance of the searched-for string using the faster
and safer mode which does not leave the results in
the Line-Editor buffer.
αβ6αβ\ Repeat the substitution for the next 6 occurances.
α\ Repeat the substitution once but leave the results in
the Line-Editor buffer.
FILE-SWITCHING and text transfering commands: ⊗ε ⊗λ ⊗H ⊗∃ ⊗?
The file switching commands <CONTROL>ε and <CONTROL>λ when followed
by the name of another file name replace the existing file by the newly
specified one while retaining the contents of the ATTACH buffer, thus
allowing one to copy or move text from one file to another file. The ε
command (ENTER) opens the new file in read-write mode while the λ
command (LOOK) opens the file in read-only mode.
As different files are referenced, each file is assigned a number
which can be used thereafter as an argument to the ε or λ command to
call the desired file without retyping its name. When files are called
by number they are positioned at the last referenced page and line. Any
previously existing line marks are also restored. Switches are not used
with number-referenced commands. The command character itself activates
the command directly.
The list of files with their referencing numbers can be displayed as
a mnemonic aid by the command <CONTROL>∃.
The usual switches (see p. 19) may be used with the file switching
commands when the file name is typed directly. Some, but not all of
these switches are remembered and are re-invoked when files are
referenced by number.
The previously referenced file (unless it be the E-manual file) is
considered to be the HOME file and can be recalled by typing <CONTROL>H.
It is reentered in its previous read-write condition and at the last
referenced page and line. On returning from the E-manual file (see
below) the home file conditions that existed before going to the
E-manual are reestablished, that is, if you had switched from file A to
file B then to the E-manual, the first H command would return you to
file B and the next H command would take you back to file A. Repeated H
commands thereafter would switch you back and forth between file A and
file B.
The HOME command will accept an argument to over-ride the default
argument and return either to the the specified page or if a signed
argument is typed to a page relatively located with respect to the
earlier referenced page.
Finally it is possible to reference the E-manual file, E.ALS[UP,DOC],
by typing <CONTROL>? . The first reference to this manual will be to
the directory page. Thereafter it is entered at the last referenced page
and line. One may, however, over-ride these default values by typing an
argument to specify a particular page, or, by typing a signed argument,
to specify a relative page number from the previously referenced page.
Difficulties may be experienced in copying and moving information
from unformatted files and from files without directories particularly
if many lines are to be moved. Requests if files may be formatted should
be honored usually unless this is known to be undesirable. ETV is smart
enough to detect most cases when one tries to format a binary file or an
XGP file and it will tell you this and give you another chance to say NO.
If one attempts to move information TO an unformatted file, the material
in the ATTACH buffer may be lost.
Also do not try to use the <CONTROL>R command when you have switched
files with something in the ATTACH buffer or the attached text will be
put in your current file at the page and line corresponding to where it
came from but in the wrong file. This will be fixed some day.
Commands
⊗ε<file name><cr> Close the current file and open the specified
file in read-write mode. The usual switches /#P, /#L and
/C may be used.The new file is assigned a serial number by
which it may be called later. (The initial file is
numbered 0). When called by number the display is returned
to the last referenced page and with the arrow on the last
referenced line and all previously set line marks restored.
⊗3⊗ε Reopen the file assigned the serial mumber 3 in read-write
mode. Note that no carriage return is used in this case.
Return the display to the last referenced page. Return the
arrow to the last referenced line and restore all previous
line marks. (Use the ⊗∃ command, below, to find numbers).
⊗λ<file name><cr> Close the current file and open the specified
file in read-only mode. The usual switches /#P and /#L
may be used. The new file is assigned a serial number by
which it may be called later. (The initial file is
numbered 0).
αβ3⊗λ Reopen the file assigned the serial mumber 3 in read-only
mode.
⊗∃ List the previously referenced files with their serial
numbers. For convenience the letter H replaces the number
in the listing of the "HOME" file and a "]" is used rather
than a ")" for the file currently displayed.
⊗0⊗∃ Move the current-file listing to location zero and flush
all other listings (to make room for more).
⊗H Return (HOME) to the last referenced file. The E-manual
file is not considered a HOME file.
⊗2⊗0⊗1⊗H Return (HOME) to the last referenced file on page 201.
The E-manual file is not considered a HOME file.
⊗-⊗2⊗3⊗H Return (HOME) to the last referenced file on a page
that is 23 pages earlier than the last referenced page.
The E-manual file is not considered a HOME file.
⊗? Close the current file and open the E manual file
E.ALS[UP,DOC] on the directory page, or, if it has been
referenced earlier, to the last referenced page and line.
page and line.
⊗8⊗? Close the current file and open the E manual file
E.ALS[UP,DOC] on page 8.
⊗-⊗2⊗? Close the current file and open the E manual file
E.ALS[UP,DOC] at 2 pages before the previously referenced
page.
MARGIN CONTROL commands: ⊗XJUST ⊗XJFILL ⊗XCENTER ⊗XJOIN
(See p. 17 for ⊗XALIGN, ⊗XINDENT, ⊗XJLEFT).
The JUST and JFILL commands are useful for doing left-margin, and/or
right margin justification. The first line